Increase the consistency of the errors returned by GtkRecentManager.
authorEmmanuele Bassi <ebassi@gnome.org>
Tue, 17 Jun 2008 13:42:53 +0000 (13:42 +0000)
committerEmmanuele Bassi <ebassi@src.gnome.org>
Tue, 17 Jun 2008 13:42:53 +0000 (13:42 +0000)
2008-06-17  Emmanuele Bassi  <ebassi@gnome.org>

* gtk/gtkrecentmanager.c:
(gtk_recent_manager_remove_item),
(gtk_recent_manager_move_item): Increase the consistency of the
errors returned by GtkRecentManager. (Paolo Borelli)

svn path=/trunk/; revision=20424

ChangeLog
gtk/gtkrecentmanager.c

index 3d6684ce74a76178e96f08b8d5193b1506bf3b4d..89b452ca79ffd91ddc7e282ffa7d61e7813dbe97 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-06-17  Emmanuele Bassi  <ebassi@gnome.org>
+
+       * gtk/gtkrecentmanager.c:
+       (gtk_recent_manager_remove_item),
+       (gtk_recent_manager_move_item): Increase the consistency of the
+       errors returned by GtkRecentManager. (Paolo Borelli)
+
 2008-06-17  Paolo Borelli  <pborelli@katamail.com>
 
        * gtk/tests/recentmanager.c: add some unit tests for GtkRecentManager.
index 02497225a4bbb395f67f6a12ea2afbfd002864e3..48796285f192d663f370ac8c2dd6c2d5f61ea611 100644 (file)
@@ -1007,9 +1007,9 @@ gtk_recent_manager_remove_item (GtkRecentManager  *manager,
       priv->recent_items = g_bookmark_file_new ();
       priv->size = 0;
 
-      g_set_error (error, G_BOOKMARK_FILE_ERROR,
-                  G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND,
-                  _("No bookmark found for URI '%s'"),
+      g_set_error (error, GTK_RECENT_MANAGER_ERROR,
+                  GTK_RECENT_MANAGER_ERROR_NOT_FOUND,
+                  _("Unable to find an item with URI '%s'"),
                   uri);
 
       return FALSE;
@@ -1018,7 +1018,12 @@ gtk_recent_manager_remove_item (GtkRecentManager  *manager,
   g_bookmark_file_remove_item (priv->recent_items, uri, &remove_error);
   if (remove_error)
     {
-      g_propagate_error (error, remove_error);
+      g_error_free (error);
+
+      g_set_error (error, GTK_RECENT_MANAGER_ERROR,
+                  GTK_RECENT_MANAGER_ERROR_NOT_FOUND,
+                  _("Unable to find an item with URI '%s'"),
+                  uri);
       
       return FALSE;
     }
@@ -1214,6 +1219,15 @@ gtk_recent_manager_move_item (GtkRecentManager  *recent_manager,
   
   priv = recent_manager->priv;
 
+  if (!priv->recent_items)
+    {
+      g_set_error (error, GTK_RECENT_MANAGER_ERROR,
+                  GTK_RECENT_MANAGER_ERROR_NOT_FOUND,
+                  _("Unable to find an item with URI '%s'"),
+                  uri);
+      return FALSE;
+    }
+
   if (!g_bookmark_file_has_item (priv->recent_items, uri))
     {
       g_set_error (error, GTK_RECENT_MANAGER_ERROR,
@@ -1229,7 +1243,12 @@ gtk_recent_manager_move_item (GtkRecentManager  *recent_manager,
                                    &move_error);
   if (move_error)
     {
-      g_propagate_error (error, move_error);
+      g_error_free (move_error);
+
+      g_set_error (error, GTK_RECENT_MANAGER_ERROR,
+                  GTK_RECENT_MANAGER_ERROR_NOT_FOUND,
+                  _("Unable to find an item with URI '%s'"),
+                  uri);
       return FALSE;
     }